render nodes: Simplify diffing of uniform border nodes
authorTimm Bäder <mail@baedert.org>
Fri, 24 Jul 2020 17:06:50 +0000 (19:06 +0200)
committerTimm Bäder <mail@baedert.org>
Tue, 28 Jul 2020 03:34:12 +0000 (05:34 +0200)
gsk/gskrendernodeimpl.c

index 9879cdff12671f53836ad2595a8012ecc32a9b2d..aa6f661aeb4ff2a2360e2320b9521dcf33fee953 100644 (file)
@@ -542,6 +542,12 @@ gsk_border_node_diff (GskRenderNode  *node1,
   GskBorderNode *self1 = (GskBorderNode *) node1;
   GskBorderNode *self2 = (GskBorderNode *) node2;
 
+  if (self1->uniform &&
+      self2->uniform &&
+      gdk_rgba_equal (&self1->border_color[0], &self2->border_color[0]) &&
+      self1->border_width[0] == self2->border_width[0])
+    return;
+
   if (gsk_rounded_rect_equal (&self1->outline, &self2->outline) &&
       gdk_rgba_equal (&self1->border_color[0], &self2->border_color[0]) &&
       gdk_rgba_equal (&self1->border_color[1], &self2->border_color[1]) &&